<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/fcntl.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/asm-generic/fcntl.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX0ZDTlRMX0hfMA__"><span class="b">_ASM_GENERIC_FCNTL_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FTTV9HRU5FUklDX0ZDTlRMX0hfMA__"><span class="b">_ASM_GENERIC_FCNTL_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> 
<a name="6" /><span class="True">       6:</span> <span class="k">/*</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * FMODE_EXEC is 0x20</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * FMODE_NONOTIFY is 0x1000000</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * These cannot be used by userspace O_* until internal and external open</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * flags are split.</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * -Eric Paris</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> */</span>
<a name="13" /><span class="True">      13:</span> 
<a name="14" /><span class="True">      14:</span> <span class="k">/*</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * When introducing new O_* bits, please check its uniqueness in fcntl_init().</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> */</span>
<a name="17" /><span class="True">      17:</span> 
<a name="18" /><span class="True">      18:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19BQ0NNT0RFXzA_"><span class="b">O_ACCMODE</span></a>    <span class="c">00000003</span>
<a name="19" /><span class="True">      19:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19SRE9OTFlfMA__"><span class="b">O_RDONLY</span></a>    <span class="c">00000000</span>
<a name="20" /><span class="True">      20:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_T19XUk9OTFlfMA__"><span class="b">O_WRONLY</span></a>    <span class="c">00000001</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19SRFdSXzA_"><span class="b">O_RDWR</span></a>        <span class="c">00000002</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19DUkVBVF8w"><span class="b">O_CREAT</span></a>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19DUkVBVF8w"><span class="b">O_CREAT</span></a>        <span class="c">00000100</span>    <span class="k">/* not fcntl */</span>
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">endif</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19FWENMXzA_"><span class="b">O_EXCL</span></a>
<a name="26" /><span class="True">      26:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19FWENMXzA_"><span class="b">O_EXCL</span></a>        <span class="c">00000200</span>    <span class="k">/* not fcntl */</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">endif</span>
<a name="28" /><span class="True">      28:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19OT0NUVFlfMA__"><span class="b">O_NOCTTY</span></a>
<a name="29" /><span class="True">      29:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19OT0NUVFlfMA__"><span class="b">O_NOCTTY</span></a>    <span class="c">00000400</span>    <span class="k">/* not fcntl */</span>
<a name="30" /><span class="True">      30:</span> <span class="f">#</span><span class="n">endif</span>
<a name="31" /><span class="True">      31:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19UUlVOQ18w"><span class="b">O_TRUNC</span></a>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19UUlVOQ18w"><span class="b">O_TRUNC</span></a>        <span class="c">00001000</span>    <span class="k">/* not fcntl */</span>
<a name="33" /><span class="True">      33:</span> <span class="f">#</span><span class="n">endif</span>
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19BUFBFTkRfMA__"><span class="b">O_APPEND</span></a>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19BUFBFTkRfMA__"><span class="b">O_APPEND</span></a>    <span class="c">00002000</span>
<a name="36" /><span class="True">      36:</span> <span class="f">#</span><span class="n">endif</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_T19OT05CTE9DS18w"><span class="b">O_NONBLOCK</span></a>
<a name="38" /><span class="True">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_T19OT05CTE9DS18w"><span class="b">O_NONBLOCK</span></a>    <span class="c">00004000</span>
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">endif</span>
<a name="40" /><span class="True">      40:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19EU1lOQ18w"><span class="b">O_DSYNC</span></a>
<a name="41" /><span class="True">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19EU1lOQ18w"><span class="b">O_DSYNC</span></a>        <span class="c">00010000</span>    <span class="k">/* used to be O_SYNC, see below */</span>
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">endif</span>
<a name="43" /><span class="True">      43:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_RkFTWU5DXzA_"><span class="b">FASYNC</span></a>
<a name="44" /><span class="True">      44:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RkFTWU5DXzA_"><span class="b">FASYNC</span></a>        <span class="c">00020000</span>    <span class="k">/* fcntl, for BSD compatibility */</span>
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">endif</span>
<a name="46" /><span class="True">      46:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RfMA__"><span class="b">O_DIRECT</span></a>
<a name="47" /><span class="True">      47:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RfMA__"><span class="b">O_DIRECT</span></a>    <span class="c">00040000</span>    <span class="k">/* direct disk access hint */</span>
<a name="48" /><span class="True">      48:</span> <span class="f">#</span><span class="n">endif</span>
<a name="49" /><span class="True">      49:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19MQVJHRUZJTEVfMA__"><span class="b">O_LARGEFILE</span></a>
<a name="50" /><span class="True">      50:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19MQVJHRUZJTEVfMA__"><span class="b">O_LARGEFILE</span></a>    <span class="c">00100000</span>
<a name="51" /><span class="True">      51:</span> <span class="f">#</span><span class="n">endif</span>
<a name="52" /><span class="True">      52:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RPUllfMA__"><span class="b">O_DIRECTORY</span></a>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RPUllfMA__"><span class="b">O_DIRECTORY</span></a>    <span class="c">00200000</span>    <span class="k">/* must be a directory */</span>
<a name="54" /><span class="True">      54:</span> <span class="f">#</span><span class="n">endif</span>
<a name="55" /><span class="True">      55:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19OT0ZPTExPV18w"><span class="b">O_NOFOLLOW</span></a>
<a name="56" /><span class="True">      56:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19OT0ZPTExPV18w"><span class="b">O_NOFOLLOW</span></a>    <span class="c">00400000</span>    <span class="k">/* don&apos;t follow links */</span>
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">endif</span>
<a name="58" /><span class="True">      58:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_T19OT0FUSU1FXzA_"><span class="b">O_NOATIME</span></a>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_T19OT0FUSU1FXzA_"><span class="b">O_NOATIME</span></a>    <span class="c">01000000</span>
<a name="60" /><span class="True">      60:</span> <span class="f">#</span><span class="n">endif</span>
<a name="61" /><span class="True">      61:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19DTE9FWEVDXzA_"><span class="b">O_CLOEXEC</span></a>
<a name="62" /><span class="True">      62:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19DTE9FWEVDXzA_"><span class="b">O_CLOEXEC</span></a>    <span class="c">02000000</span>    <span class="k">/* set close_on_exec */</span>
<a name="63" /><span class="True">      63:</span> <span class="f">#</span><span class="n">endif</span>
<a name="64" /><span class="True">      64:</span> 
<a name="65" /><span class="True">      65:</span> <span class="k">/*</span>
<a name="66" /><span class="True">      66:</span> <span class="k"> * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using</span>
<a name="67" /><span class="True">      67:</span> <span class="k"> * the O_SYNC flag.  We continue to use the existing numerical value</span>
<a name="68" /><span class="True">      68:</span> <span class="k"> * for O_DSYNC semantics now, but using the correct symbolic name for it.</span>
<a name="69" /><span class="True">      69:</span> <span class="k"> * This new value is used to request true Posix O_SYNC semantics.  It is</span>
<a name="70" /><span class="True">      70:</span> <span class="k"> * defined in this strange way to make sure applications compiled against</span>
<a name="71" /><span class="True">      71:</span> <span class="k"> * new headers get at least O_DSYNC semantics on older kernels.</span>
<a name="72" /><span class="True">      72:</span> <span class="k"> *</span>
<a name="73" /><span class="True">      73:</span> <span class="k"> * This has the nice side-effect that we can simply test for O_DSYNC</span>
<a name="74" /><span class="True">      74:</span> <span class="k"> * wherever we do not care if O_DSYNC or O_SYNC is used.</span>
<a name="75" /><span class="True">      75:</span> <span class="k"> *</span>
<a name="76" /><span class="True">      76:</span> <span class="k"> * Note: __O_SYNC must never be used directly.</span>
<a name="77" /><span class="True">      77:</span> <span class="k"> */</span>
<a name="78" /><span class="True">      78:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19TWU5DXzA_"><span class="b">O_SYNC</span></a>
<a name="79" /><span class="True">      79:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19PX1NZTkNfMA__"><span class="b">__O_SYNC</span></a>    <span class="c">04000000</span>
<a name="80" /><span class="True">      80:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19TWU5DXzA_"><span class="b">O_SYNC</span></a>        <span class="f">(</span><a href="cpu.c_macros_noref.html#_X19PX1NZTkNfMA__"><span class="b">__O_SYNC</span></a><span class="f">|</span><a href="cpu.c_macros_noref.html#_T19EU1lOQ18w"><span class="b">O_DSYNC</span></a><span class="f">)</span>
<a name="81" /><span class="True">      81:</span> <span class="f">#</span><span class="n">endif</span>
<a name="82" /><span class="True">      82:</span> 
<a name="83" /><span class="True">      83:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19QQVRIXzA_"><span class="b">O_PATH</span></a>
<a name="84" /><span class="True">      84:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19QQVRIXzA_"><span class="b">O_PATH</span></a>        <span class="c">010000000</span>
<a name="85" /><span class="True">      85:</span> <span class="f">#</span><span class="n">endif</span>
<a name="86" /><span class="True">      86:</span> 
<a name="87" /><span class="True">      87:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X19PX1RNUEZJTEVfMA__"><span class="b">__O_TMPFILE</span></a>
<a name="88" /><span class="True">      88:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19PX1RNUEZJTEVfMA__"><span class="b">__O_TMPFILE</span></a>    <span class="c">020000000</span>
<a name="89" /><span class="True">      89:</span> <span class="f">#</span><span class="n">endif</span>
<a name="90" /><span class="True">      90:</span> 
<a name="91" /><span class="True">      91:</span> <span class="k">/* a horrid kludge trying to make sure that this will fail on old kernels */</span>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19UTVBGSUxFXzA_"><span class="b">O_TMPFILE</span></a> <span class="f">(</span><a href="cpu.c_macros_noref.html#_X19PX1RNUEZJTEVfMA__"><span class="b">__O_TMPFILE</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RPUllfMA__"><span class="b">O_DIRECTORY</span></a><span class="f">)</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19UTVBGSUxFX01BU0tfMA__"><span class="b">O_TMPFILE_MASK</span></a> <span class="f">(</span><a href="cpu.c_macros_noref.html#_X19PX1RNUEZJTEVfMA__"><span class="b">__O_TMPFILE</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_T19ESVJFQ1RPUllfMA__"><span class="b">O_DIRECTORY</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_T19DUkVBVF8w"><span class="b">O_CREAT</span></a><span class="f">)</span>      
<a name="94" /><span class="True">      94:</span> 
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_T19OREVMQVlfMA__"><span class="b">O_NDELAY</span></a>
<a name="96" /><span class="True">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_T19OREVMQVlfMA__"><span class="b">O_NDELAY</span></a>    <a href="cpu.c_macros_ref.html#_T19OT05CTE9DS18w"><span class="b">O_NONBLOCK</span></a>
<a name="97" /><span class="True">      97:</span> <span class="f">#</span><span class="n">endif</span>
<a name="98" /><span class="True">      98:</span> 
<a name="99" /><span class="True">      99:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9EVVBGRF8w"><span class="b">F_DUPFD</span></a>        <span class="c">0</span>    <span class="k">/* dup */</span>
<a name="100" /><span class="True">     100:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRGRF8w"><span class="b">F_GETFD</span></a>        <span class="c">1</span>    <span class="k">/* get close_on_exec */</span>
<a name="101" /><span class="True">     101:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRGRF8w"><span class="b">F_SETFD</span></a>        <span class="c">2</span>    <span class="k">/* set/clear close_on_exec */</span>
<a name="102" /><span class="True">     102:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRGTF8w"><span class="b">F_GETFL</span></a>        <span class="c">3</span>    <span class="k">/* get file-&gt;f_flags */</span>
<a name="103" /><span class="True">     103:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRGTF8w"><span class="b">F_SETFL</span></a>        <span class="c">4</span>    <span class="k">/* set file-&gt;f_flags */</span>
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRMS18w"><span class="b">F_GETLK</span></a>
<a name="105" /><span class="True">     105:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRMS18w"><span class="b">F_GETLK</span></a>        <span class="c">5</span>
<a name="106" /><span class="True">     106:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRMS18w"><span class="b">F_SETLK</span></a>        <span class="c">6</span>
<a name="107" /><span class="True">     107:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRMS1dfMA__"><span class="b">F_SETLKW</span></a>    <span class="c">7</span>
<a name="108" /><span class="True">     108:</span> <span class="f">#</span><span class="n">endif</span>
<a name="109" /><span class="True">     109:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRPV05fMA__"><span class="b">F_SETOWN</span></a>
<a name="110" /><span class="True">     110:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRPV05fMA__"><span class="b">F_SETOWN</span></a>    <span class="c">8</span>    <span class="k">/* for sockets. */</span>
<a name="111" /><span class="True">     111:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRPV05fMA__"><span class="b">F_GETOWN</span></a>    <span class="c">9</span>    <span class="k">/* for sockets. */</span>
<a name="112" /><span class="True">     112:</span> <span class="f">#</span><span class="n">endif</span>
<a name="113" /><span class="True">     113:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRTSUdfMA__"><span class="b">F_SETSIG</span></a>
<a name="114" /><span class="True">     114:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRTSUdfMA__"><span class="b">F_SETSIG</span></a>    <span class="c">10</span>    <span class="k">/* for sockets. */</span>
<a name="115" /><span class="True">     115:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRTSUdfMA__"><span class="b">F_GETSIG</span></a>    <span class="c">11</span>    <span class="k">/* for sockets. */</span>
<a name="116" /><span class="True">     116:</span> <span class="f">#</span><span class="n">endif</span>
<a name="117" /><span class="True">     117:</span> 
<a name="118" /><span class="False">     118:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHXzY0QklUXzA_"><span class="b">CONFIG_64BIT</span></a>
<a name="119" /><span class="False">     119:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">F_GETLK64</span>
<a name="120" /><span class="False">     120:</span> <span class="f">#</span><span class="n">define</span> <span class="b">F_GETLK64</span>    <span class="c">12</span>    <span class="k">/*  using &apos;struct flock64&apos; */</span>
<a name="121" /><span class="False">     121:</span> <span class="f">#</span><span class="n">define</span> <span class="b">F_SETLK64</span>    <span class="c">13</span>
<a name="122" /><span class="False">     122:</span> <span class="f">#</span><span class="n">define</span> <span class="b">F_SETLKW64</span>    <span class="c">14</span>
<a name="123" /><span class="False">     123:</span> <span class="f">#</span><span class="n">endif</span>
<a name="124" /><span class="True">     124:</span> <span class="f">#</span><span class="n">endif</span>
<a name="125" /><span class="True">     125:</span> 
<a name="126" /><span class="True">     126:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRPV05fRVhfMA__"><span class="b">F_SETOWN_EX</span></a>
<a name="127" /><span class="True">     127:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TRVRPV05fRVhfMA__"><span class="b">F_SETOWN_EX</span></a>    <span class="c">15</span>
<a name="128" /><span class="True">     128:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRPV05fRVhfMA__"><span class="b">F_GETOWN_EX</span></a>    <span class="c">16</span>
<a name="129" /><span class="True">     129:</span> <span class="f">#</span><span class="n">endif</span>
<a name="130" /><span class="True">     130:</span> 
<a name="131" /><span class="True">     131:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRPV05FUl9VSURTXzA_"><span class="b">F_GETOWNER_UIDS</span></a>
<a name="132" /><span class="True">     132:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9HRVRPV05FUl9VSURTXzA_"><span class="b">F_GETOWNER_UIDS</span></a>    <span class="c">17</span>
<a name="133" /><span class="True">     133:</span> <span class="f">#</span><span class="n">endif</span>
<a name="134" /><span class="True">     134:</span> 
<a name="135" /><span class="True">     135:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9PV05FUl9USURfMA__"><span class="b">F_OWNER_TID</span></a>    <span class="c">0</span>
<a name="136" /><span class="True">     136:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9PV05FUl9QSURfMA__"><span class="b">F_OWNER_PID</span></a>    <span class="c">1</span>
<a name="137" /><span class="True">     137:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9PV05FUl9QR1JQXzA_"><span class="b">F_OWNER_PGRP</span></a>    <span class="c">2</span>
<a name="138" /><span class="True">     138:</span> 
<a name="139" /><span class="True">     139:</span> <span class="m">struct</span> <span class="b">f_owner_ex</span> <span class="f">{</span>
<a name="140" /><span class="True">     140:</span>     <span class="m">int</span>    <span class="b">type</span><span class="f">;</span>
<a name="141" /><span class="True">     141:</span>     <span class="b">__kernel_pid_t</span>    <span class="b">pid</span><span class="f">;</span>
<a name="142" /><span class="True">     142:</span> <span class="f">}</span><span class="f">;</span>
<a name="143" /><span class="True">     143:</span> 
<a name="144" /><span class="True">     144:</span> <span class="k">/* for F_[GET|SET]FL */</span>
<a name="145" /><span class="True">     145:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RkRfQ0xPRVhFQ18w"><span class="b">FD_CLOEXEC</span></a>    <span class="c">1</span>    <span class="k">/* actually anything with low bit set goes */</span>
<a name="146" /><span class="True">     146:</span> 
<a name="147" /><span class="True">     147:</span> <span class="k">/* for posix fcntl() and lockf() */</span>
<a name="148" /><span class="True">     148:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9SRExDS18w"><span class="b">F_RDLCK</span></a>
<a name="149" /><span class="True">     149:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9SRExDS18w"><span class="b">F_RDLCK</span></a>        <span class="c">0</span>
<a name="150" /><span class="True">     150:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9XUkxDS18w"><span class="b">F_WRLCK</span></a>        <span class="c">1</span>
<a name="151" /><span class="True">     151:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9VTkxDS18w"><span class="b">F_UNLCK</span></a>        <span class="c">2</span>
<a name="152" /><span class="True">     152:</span> <span class="f">#</span><span class="n">endif</span>
<a name="153" /><span class="True">     153:</span> 
<a name="154" /><span class="True">     154:</span> <span class="k">/* for old implementation of bsd flock () */</span>
<a name="155" /><span class="True">     155:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_Rl9FWExDS18w"><span class="b">F_EXLCK</span></a>
<a name="156" /><span class="True">     156:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9FWExDS18w"><span class="b">F_EXLCK</span></a>        <span class="c">4</span>    <span class="k">/* or 3 */</span>
<a name="157" /><span class="True">     157:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9TSExDS18w"><span class="b">F_SHLCK</span></a>        <span class="c">8</span>    <span class="k">/* or 4 */</span>
<a name="158" /><span class="True">     158:</span> <span class="f">#</span><span class="n">endif</span>
<a name="159" /><span class="True">     159:</span> 
<a name="160" /><span class="True">     160:</span> <span class="k">/* operations for bsd flock(), also used by the kernel implementation */</span>
<a name="161" /><span class="True">     161:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19TSF8w"><span class="b">LOCK_SH</span></a>        <span class="c">1</span>    <span class="k">/* shared lock */</span>
<a name="162" /><span class="True">     162:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19FWF8w"><span class="b">LOCK_EX</span></a>        <span class="c">2</span>    <span class="k">/* exclusive lock */</span>
<a name="163" /><span class="True">     163:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19OQl8w"><span class="b">LOCK_NB</span></a>        <span class="c">4</span>    <span class="k">/* or&apos;d with one of the above to prevent</span>
<a name="164" /><span class="True">     164:</span> <span class="k">                   blocking */</span>
<a name="165" /><span class="True">     165:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19VTl8w"><span class="b">LOCK_UN</span></a>        <span class="c">8</span>    <span class="k">/* remove lock */</span>
<a name="166" /><span class="True">     166:</span> 
<a name="167" /><span class="True">     167:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19NQU5EXzA_"><span class="b">LOCK_MAND</span></a>    <span class="c">32</span>    <span class="k">/* This is a mandatory flock ... */</span>
<a name="168" /><span class="True">     168:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19SRUFEXzA_"><span class="b">LOCK_READ</span></a>    <span class="c">64</span>    <span class="k">/* which allows concurrent read operations */</span>
<a name="169" /><span class="True">     169:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19XUklURV8w"><span class="b">LOCK_WRITE</span></a>    <span class="c">128</span>    <span class="k">/* which allows concurrent write operations */</span>
<a name="170" /><span class="True">     170:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DS19SV18w"><span class="b">LOCK_RW</span></a>        <span class="c">192</span>    <span class="k">/* which allows concurrent read &amp; write ops */</span>
<a name="171" /><span class="True">     171:</span> 
<a name="172" /><span class="True">     172:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Rl9MSU5VWF9TUEVDSUZJQ19CQVNFXzA_"><span class="b">F_LINUX_SPECIFIC_BASE</span></a>    <span class="c">1024</span>
<a name="173" /><span class="True">     173:</span> 
<a name="174" /><span class="True">     174:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">HAVE_ARCH_STRUCT_FLOCK</span>
<a name="175" /><span class="True">     175:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19BUkNIX0ZMT0NLX1BBRF8w"><span class="b">__ARCH_FLOCK_PAD</span></a>
<a name="176" /><span class="True">     176:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19BUkNIX0ZMT0NLX1BBRF8w"><span class="b">__ARCH_FLOCK_PAD</span></a>
<a name="177" /><span class="True">     177:</span> <span class="f">#</span><span class="n">endif</span>
<a name="178" /><span class="True">     178:</span> 
<a name="179" /><span class="True">     179:</span> <span class="m">struct</span> <span class="b">flock</span> <span class="f">{</span>
<a name="180" /><span class="True">     180:</span>     <span class="m">short</span>    <span class="b">l_type</span><span class="f">;</span>
<a name="181" /><span class="True">     181:</span>     <span class="m">short</span>    <span class="b">l_whence</span><span class="f">;</span>
<a name="182" /><span class="True">     182:</span>     <span class="b">__kernel_off_t</span>    <span class="b">l_start</span><span class="f">;</span>
<a name="183" /><span class="True">     183:</span>     <span class="b">__kernel_off_t</span>    <span class="b">l_len</span><span class="f">;</span>
<a name="184" /><span class="True">     184:</span>     <span class="b">__kernel_pid_t</span>    <span class="b">l_pid</span><span class="f">;</span>
<a name="185" /><span class="True">     185:</span>     <a href="cpu.c_macros_ref.html#_X19BUkNIX0ZMT0NLX1BBRF8w"><span class="b">__ARCH_FLOCK_PAD</span></a>
<a name="186" /><span class="True">     186:</span> <span class="f">}</span><span class="f">;</span>
<a name="187" /><span class="True">     187:</span> <span class="f">#</span><span class="n">endif</span>
<a name="188" /><span class="True">     188:</span> 
<a name="189" /><span class="False">     189:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHXzY0QklUXzA_"><span class="b">CONFIG_64BIT</span></a>
<a name="190" /><span class="False">     190:</span> 
<a name="191" /><span class="False">     191:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">HAVE_ARCH_STRUCT_FLOCK64</span>
<a name="192" /><span class="False">     192:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ARCH_FLOCK64_PAD</span>
<a name="193" /><span class="False">     193:</span> <span class="f">#</span><span class="n">define</span> <span class="b">__ARCH_FLOCK64_PAD</span>
<a name="194" /><span class="False">     194:</span> <span class="f">#</span><span class="n">endif</span>
<a name="195" /><span class="False">     195:</span> 
<a name="196" /><span class="False">     196:</span> <span class="m">struct</span> <span class="b">flock64</span> <span class="f">{</span>
<a name="197" /><span class="False">     197:</span>     <span class="m">short</span>  <span class="b">l_type</span><span class="f">;</span>
<a name="198" /><span class="False">     198:</span>     <span class="m">short</span>  <span class="b">l_whence</span><span class="f">;</span>
<a name="199" /><span class="False">     199:</span>     <span class="b">__kernel_loff_t</span> <span class="b">l_start</span><span class="f">;</span>
<a name="200" /><span class="False">     200:</span>     <span class="b">__kernel_loff_t</span> <span class="b">l_len</span><span class="f">;</span>
<a name="201" /><span class="False">     201:</span>     <span class="b">__kernel_pid_t</span>  <span class="b">l_pid</span><span class="f">;</span>
<a name="202" /><span class="False">     202:</span>     <span class="b">__ARCH_FLOCK64_PAD</span>
<a name="203" /><span class="False">     203:</span> <span class="f">}</span><span class="f">;</span>
<a name="204" /><span class="False">     204:</span> <span class="f">#</span><span class="n">endif</span>
<a name="205" /><span class="True">     205:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !CONFIG_64BIT */</span>
<a name="206" /><span class="True">     206:</span> 
<a name="207" /><span class="True">     207:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_GENERIC_FCNTL_H */</span>
<a name="208" /><span class="True">     208:</span> </pre>
  </body>
</html>
